keil软件这个流水灯程序怎么写?图片上哪边写错了?能发给我个正确的吗? , keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)

您所在的位置:网站首页 流水灯汇编程序 keil keil软件这个流水灯程序怎么写?图片上哪边写错了?能发给我个正确的吗? , keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)

keil软件这个流水灯程序怎么写?图片上哪边写错了?能发给我个正确的吗? , keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)

2024-07-09 18:28| 来源: 网络整理| 查看: 265

本篇文章给大家谈谈 keil软件这个流水灯程序怎么写?图片上哪边写错了?能发给我个正确的吗? ,以及 keil软件用单片机控制8个LED流水灯来回点亮(C语言程序) 对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

我想这个程序可能最简单了吧。可以实现流水灯效果。ORG 0000H LJMP START ORG 0050H START:MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A LJMP LOOP DELAY:MOV R1,#20 DLY:MOV R0,#0 DJNZ R0,DJNZ R1,DLY RET

;左移 star: mov r3,#8 ;设置流水位数 mov p0,#11111110b ;从p0.0开始 loop: acall d01s mov a,p0 ;读取p0当前数据到acc rl a ;左移一位 mov p0,a ;将左移的数据再送到p1 djnz r3,loop

这个是不对的,sbit是keil针对51硬件对标准C的扩展P1^x中的x只能是立即数,不能做变量,而且for(x=7;x>=4;x--);循环什么都做不了,printf函数在单片机中数据流向串口,因此实现这样的功能这个代码显然无法完成。延时算

一键多空流水灯汇编语言程序编写方法是:设置一个变量,来检测按键的次数,从而控制程序分支来达到控制不同流水灯的效果例如:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV R6,#0FEH MOV R7,#0 LOOP:JB P1.0,LOOP1 JNB

keil软件这个流水灯程序怎么写?图片上哪边写错了?能发给我个正确的吗?

因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0

1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

单片机流水灯C语言程序的源代码如下:include //51系列单片机定义文件 define uchar unsigned char //定义无符号字符 define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void main(void){ uint

目前,国内外对于单片机流水灯的研究,大多数是利用AT89C51单片机,软硬件村结合,构造出最简单的流水灯,此举旨在抛砖引玉,广大用户又在此基础上扩展出更复杂的流水灯控制,比如键盘控制流水花样、控制流水灯显示数字或图案等

可以用for循环试试unsingned char i;for(i=0;i

单片机原理流水灯实验报告:本实验的目的是通过使用单片机,来实现流水灯的功能。实验中,使用了AT89C51单片机,通过设置定时器,实现了不同的流水灯灯序,并使用外部中断按键,来控制流水灯的开关。实验的结果表明,单片机通过定

单片机流水灯?

我想这个程序可能最简单了吧。可以实现流水灯效果。ORG 0000H LJMP START ORG 0050H START:MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A LJMP LOOP DELAY:MOV R1,#20 DLY:MOV R0,#0 DJNZ R0,DJNZ R1,DLY RET

这个是不对的,sbit是keil针对51硬件对标准C的扩展P1^x中的x只能是立即数,不能做变量,而且for(x=7;x>=4;x--);循环什么都做不了,printf函数在单片机中数据流向串口,因此实现这样的功能这个代码显然无法完成。延时

//INT0 控制灯 //增加了P1口的流水灯功能。//--- include include define uchar unsigned char define uint unsigned int sbit LED = P0^0;uchar i,j;//--- void main(){ j = 0xf

star: mov r3,#8 ;设置流水位数 mov p0,#11111110b ;从p0.0开始 loop: acall d01s mov a,p0 ;读取p0当前数据到acc rl a ;左移一位 mov p0,a ;将左移的数据再送到p1 djnz r3,loop ;没有

下面是用C51编写的简单程序:include include sbit io_Key = P1 ^ 1;sbit led1 = P1 ^ 2;sbit led2 = P1 ^ 3;sbit led3 = P1 ^ 4;unsigned char ucCount = 0;bit flag05s =

一键多控流水灯汇编语言怎么写,软件是keil

通常来说,在单片机上编程,要么汇编,要么C语言,而用C++进行开发的很少,那么究竟能不能用C++开发单片机呢?答案是肯定可以的,下面讲讲基于Keil、STM32,用C++编写流水灯程序的一些内容。1、为什么很少用C++开发单片机 不

//上面这段改完也不是两边同时向中间流水,只是左到右,左到右的来回流水灯 两边向中间流水,直接用查表法,//11111111B, 01111110B, 10111101B, 11011011B, 11100111B uchar MB[]={0xFF, 0x7E, 0xBD, 0xDB, 0x

要实现Proteus和Keil软件联调,需要安装一个插件,然后在proteus和keil中设置。其实,这两个软件联调,真的没有什么用,调试一个小程序时,单步调试还可以,调试大程序就不适用了。keil编译好了,在proteus仿真测试就行,仿真

CALL DELAY RR A JMP LOOP DELAY: ;延时程序 MOV R3,#20 D1:MOV R4,#20 D2:R5,#248 DJNZ R5,DJNZ R4,D2 DJNZ R2,D1 RET 这只是2个灯右移程序,如果达到你想要的效果还有计数8次然后进入计数左移动8次

两个灯一起流动,改Outdata的初值为0xfd; 或Outdata=0x3f;左右来回流动,用两个for循环,一个循环里用_crol_,另一个循环里用_cror_函数。

P1=w; //循环点亮LED w

用keil写的来回流水灯程序,要求左右来回的

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,

counter=0;led=led

1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();}

while(1){ P1=0xfe; //点亮第一个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LED for

keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)

上述代码实现了四个 LED 灯逐个亮起来然后再逐个灭掉的效果。其中,sbit 定义了四个位于 P2 口的 LED 灯,而 delay 函数则是一个延时函数,可以用来控制 LED 灯亮起和灭掉的时间。注意:在编译运行上述代码前,请确保你

用c啊,我想想:1、和硬件有点儿关系,这个你清楚么?2、假设led连接到p1口吧。第一个灯接到p1.0。阴极接io,阳极接5v。include bit secflag;unsigned char ms;void display(unsigned char num,unsigned char sec){

0xff,0x00};//[第2小题用这个表]void InitTimer1(void){ TMOD = 0x10; TH1 = 0x3C; TL1 = 0x0B0; EA = 1; ET1 = 1; TR1 = 1;}void main(void){ static uchar j; InitTi

bit LEDDirection = 1; /*声明位变量LEDDirection,用来指示点亮的方向,初始值为1*/ while(1) /*一直循环执行大括号里面的语句*/ { if(LEDDirection) /*当LEDDirection=1时,0000 0001左移LEDIndex位,取反后送给P2

求at89c51 流水灯C语言代码。要求第一三五七个灯亮,另一个是二四六八个灯亮。。 /************************************************************** 51单片机流水灯 C语言源程序 文件说明:流水灯C程序 程序说明: MCU采用AT89S52,外接11.0592M晶振,P2口输出 *************************************************************/ #include //51 系列单片机定义文件 #define uchar unsigned char // 定义无符号字符 #define uint unsigned int // 定义无符号整数 void delay(uint); // 声明延时函数 void main(void) { uint i; uchar temp; while(1) { temp=0x01; for(i=0;i>=1; } temp=0xFE; for(i=0;i>=1; } } } void delay(uint t) // 定义延时函数 { register uint bt; for(;t;t--) for(bt=0;bt电路有问题啊,电源怎么能直接接到GPIO,这样大电流会损坏IC。P1口好像没有外部中断,那只有轮询了。这个就是按键检测嘛,网上一堆代码,so easy!1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。 2、#include "reg51.h"首先写出单片机的头函数。 3、#include "intrins.h"输入位移函数。 4、unsigned int count=0,led;定义函数。 5、输入主函数,定义单片机的端口,写入延时函数。 6、中断跳转,使流水灯运行起来。 自己现成想的汇编的要不要啊哈哈 MOV A,#0011111 LOOP: MOV P0,A CALL DELAY RR A JMP LOOP DELAY: ;延时程序 MOV R3,#20 D1:MOV R4,#20 D2:R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R2,D1 RET 这只是2个灯右移程序,如果达到你想要的效果还有计数8次然后进入计数左移动8次,懂基本原理什么都好办哎!纠结!!!!!!!!!自己现成想的汇编的要不要啊哈哈 MOV A,#0011111 LOOP: MOV P0,A CALL DELAY RR A JMP LOOP DELAY: ;延时程序 MOV R3,#20 D1:MOV R4,#20 D2:R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R2,D1 RET 这只是2个灯右移程序,如果达到你想要的效果还有计数8次然后进入计数左移动8次,懂基本原理什么都好办哎!纠结!!!!!!!!!#include "reg51.h" main() { unsigned int i,j; while(1) { P1=0xfe; //点亮第一个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xfd; //点亮第二个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xfb; //点亮第三个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xf7; //点亮第四个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xef; //点亮第五个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xdf; //点亮第六个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0xbf; //点亮第七个LED for(i=200;i>0;i--) for(j=500;j>0;j--); P1=0x7f; //点亮第八个LED for(i=200;i>0;i--) for(j=500;j>0;j--); } } 或: #include "reg51.h" void delay(unsigned int t) { unsigned inti,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } main() { unsigned char w,i; while(1) { w=0xfe; for (i=0;i0;i--) for(j=110;j>0;j--); } main() { unsigned char temp; temp=0xfe; while(1) { P1=temp; delay(500); //延时 temp=_crol_(temp,1); //点亮LED的位置循环左移一位 } }你有过这个提问了,已经给你程序了。 #include #include void delay() { unsigned int a=5000; while(a--); } void main() { unsigned char light=0xfe; P2=0xfe; while(1) { P2=light; light=_crol_(light,1); delay(); } }程序为:p0和p1流水灯 MOV R4,#0FFH; MOV A ,#80H ; MAIN:MOV P0 ,A ; RR A ; RR A 累加器循环右移 LCALL DELAY ; JB P0.0,D3; ;JB bit,rel 如果直接寻址位为1 则转移 LJMP MAIN ; D3:MOV P0,R4 ; MOV A ,#80H ; D4:MOV P1,A; RR A ;RR A 累加器循环右移 LCALL DELAY ; JNB P1.0,D4 ; JNB bit,rel 如果直接寻址位为0 则转移 MOV P1,R4 ; LJMP MAIN; DELAY:MOV R7 ,#250 ; D1:MOV R6 ,#250 ; D2:DJNZ R6,D2 ; DJNZ R7,D1 ; RET ; END. 一个拨位开关,控制流向? 懂事电子设计 Vgz来自理科生的浪漫,用51单片机制作心形流水灯 因为你的while(1);后有分号,所以程序就在这里死循环了,KEIL在编译时,就会优化程序,将之后的{ }内的内容自动忽略。 这样的话,delayms函数就不会被调用,这个警告的意思,就是在提醒你,有个函数叫delayms没有被调用。看不清,初步感觉你这应该是所有灯常亮是不是?缺少延时函数

关于 keil软件这个流水灯程序怎么写?图片上哪边写错了?能发给我个正确的吗? 和 keil软件用单片机控制8个LED流水灯来回点亮(C语言程序) 的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3